home *** CD-ROM | disk | FTP | other *** search
/ PC Plus SuperCD (UK) 1995 August / PC Plus Super CD (Issue 106) (PCP106) (August 1995).iso / picpub / ppsetupc.ms_ / ppsetupc.ms
Encoding:
Text File  |  1994-12-06  |  31.2 KB  |  1,041 lines

  1. '*************************************************************************
  2. '*       Setup for Micrografx Picture Publisher 5.0  CD V1.1
  3. '**************************************************************************
  4.  
  5.  
  6.  
  7. '$INCLUDE 'setupapi.inc'
  8. '$INCLUDE 'msdetect.inc'
  9. '$INCLUDE 'msregdb.inc'
  10. '$INCLUDE 'ppnamini.inc'
  11. '$INCLUDE 'ppini.inc'
  12.  
  13.  
  14. CONST WELCOME      = 149
  15. CONST CUSTHELP     = 115   'Custom setup help
  16. CONST CDOPTIONS    = 116
  17. CONST PREVER4      = 146
  18. CONST EXPRESSOPT   = 121
  19. CONST INSTMENU     = 122
  20. CONST SCANHELPDB   = 126
  21. CONST LICENSE      = 130
  22. CONST CMS          = 131
  23. CONST FULLINSTM    = 134
  24. CONST CUSTINSTCD   = 138
  25. CONST OLEOPTN1     = 140   'OLE option for updating to 5.0
  26. CONST OLEOPTN2     = 141
  27. CONST WINSHARE     = 143
  28. CONST CLOSEHELP    = 145
  29. CONST SHAREWARN    = 150
  30. CONST ASKQUIT      = 200
  31. CONST DESTPATH     = 300
  32. CONST EXITQUIT     = 600
  33. CONST EXITSUCCESS  = 700
  34. CONST APPHELP      = 900
  35. CONST WAIT         = 5000
  36. CONST INSTMENUEXP  = 6200
  37. CONST TOOBIG       = 6300
  38. CONST BADPATH      = 6400
  39. CONST LAWS         = 7100
  40. CONST CDCONFIRMINFO= 7300
  41. CONST CDGETNAMEORG = 7500
  42.  
  43. ''Bitmap ID
  44. CONST LOGO         = 1
  45.  
  46. ''File Types
  47. CONST APPFILES     = 1
  48. CONST EFCTFILES    = 2
  49. CONST TUTFILES     = 3
  50. CONST IMPORTFILES  = 4
  51. CONST HELPFILES    = 5
  52. CONST TEXTFILES    = 6
  53. CONST SCANFILES    = 7
  54.  
  55. GLOBAL WINDRIVE$    'Windows drive letter.
  56. GLOBAL WINDIRECT$
  57. GLOBAL SYSTEMDIRECT$
  58.  
  59.  
  60. ''CustInst list symbol names
  61. GLOBAL FULLNEEDS$
  62. GLOBAL APPNEEDS$    ''Option list costs per drive
  63. GLOBAL TEXTNEEDS$
  64. GLOBAL IMPORTNEEDS$
  65. GLOBAL TUTNEEDS$
  66. GLOBAL HELPNEEDS$
  67. GLOBAL SCANNEEDS$
  68. GLOBAL EFCTNEEDS$
  69.  
  70. GLOBAL EXTRACOSTS$  ''List of extra costs to add per drive
  71.  
  72. GLOBAL PICTPUB$     ''Picture Publisher 5.0 Destination directories.
  73. GLOBAL ALBUM$
  74. GLOBAL BRUSH$
  75. GLOBAL CLIPBIT$
  76. GLOBAL DBF$
  77. GLOBAL DEVICE$
  78. GLOBAL EFFECT$
  79. GLOBAL MACRO$
  80. GLOBAL PALETTE$
  81. GLOBAL PRINTSTY$
  82. GLOBAL SAMPLE$
  83. GLOBAL TEXTURE$
  84. GLOBAL THUMB$
  85. GLOBAL TUTORIAL$
  86. GLOBAL FILTER$
  87. GLOBAL PICTPUBOLE$
  88. GLOBAL TooManyFiles%
  89. GLOBAL PICTPUBCK50$
  90. GLOBAL SetAppfilesOn%
  91.  
  92. ''Dialog list symbol names
  93. GLOBAL CHECKSTATES$
  94. GLOBAL STATUSTEXT$
  95. GLOBAL DRIVETEXT$
  96. GLOBAL VERTEXT$
  97. GLOBAL CUSTID$
  98. GLOBAL ORGID$
  99.  
  100.  
  101. ''Subroutines and fuctions
  102. DECLARE SUB AddOptFilesToCopyList (ftype%)
  103. DECLARE SUB RecalcOptFiles (ftype%)
  104. DECLARE SUB RecalcPath
  105. DECLARE SUB SetDriveStatus
  106. DECLARE SUB CreateSubDir
  107. DECLARE SUB OLE_Process
  108.  
  109. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  110. DECLARE FUNCTION HandleDBF LIB "INIUPD.DLL" (szDBFFile$, szFileDir$, szThumbDir$) AS INTEGER
  111. DECLARE FUNCTION pmShowGroup LIB "pmdde.dll" (Group$, Cmd%) AS INTEGER
  112. DECLARE FUNCTION pmDeleteItem LIB "pmdde.dll" (Group$) AS INTEGER
  113. DECLARE FUNCTION MyLeftFoot LIB "INIUPD.DLL" (szStr$, szDest$, n%) AS INTEGER
  114. DECLARE FUNCTION UpdateRegistry LIB "INIUPD.DLL" (szPath$) AS INTEGER
  115.  
  116. INIT:
  117.     CUIDLL$ = "mscuistf.dll"            ''custom user interface dll
  118.     HELPPROC$ = "FHelpDlgProc"          ''Help dialog procedure
  119.  
  120.     MaximizeFrame
  121.     SetBitmap CUIDLL$, LOGO
  122.     SetTitle "Setup"
  123.  
  124.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  125.     IF szInf$ = "" THEN
  126.         szInf$ = GetSymbolValue("STF_CWDDIR") + "PPSETUP.INF"
  127.     END IF
  128.     ReadInfFile szInf$
  129.  
  130.     WINDRIVE$ = MID$(GetWindowsDir, 1, 1)
  131.  
  132.     WINDIRECT$ = GetWindowsDir
  133.  
  134.     SYSTEMDIRECT$ = GetWindowsSysDir
  135.  
  136.     'Create OLE system file list for OLE_Process procedure
  137.     VERTEXT$ = "Version_txt"
  138.     MakeListFromSectionKeys VERTEXT$, "Ole"
  139.  
  140.  
  141.     'Check previously installed versions
  142.     MGXini$ = MakePath(WINDIRECT$, "MGX.INI")
  143.  
  144.     IF DoesIniKeyExist (MGXini$, "Micrografx", "Picture Publisher 5.0")  THEN
  145.         PICTPUB$=GetIniKeyString (MGXini$, "Micrografx", "Picture Publisher 5.0")
  146.         PICTPUBCK50$ = PICTPUB$
  147.         User_ID$= GetIniKeyString (PICTPUB$+"\PP.ini","Picture Publisher","User")
  148.         Company_ID$= GetIniKeyString (PICTPUB$+"\PP.ini","Picture Publisher","Company")
  149.     ELSEIF DoesIniKeyExist (WINDIRECT$+"WIN.INI", "Micrografx", "Picture Publisher 4.0") THEN
  150.     ELSE
  151.         PICTPUB$ = WINDRIVE$ + ":\PICTPUB5"
  152.     ENDIF
  153.  
  154.     sztemp$ = GetSymbolValue("STF_SRCDIR")
  155.     szTemp2$ = "012345678901234567890123456789012234567890123456789"
  156.     value%=MyLeftFoot(sztemp$, sztemp2$, 2)
  157.     PICTPUBN$= sztemp2$
  158.  
  159.     ''CustInst list symbols
  160.     CHECKSTATES$ = "CheckItemsState"
  161.     STATUSTEXT$  = "StatusItemsText"
  162.     DRIVETEXT$   = "DriveStatusText"
  163.  
  164.     FOR i% = 1 TO 7 STEP 1
  165.         AddListItem CHECKSTATES$, "ON"
  166.     NEXT i%
  167.  
  168.  
  169.     FOR i% = 1 TO 7 STEP 1
  170.         AddListItem STATUSTEXT$, ""
  171.     NEXT i%
  172.     FOR i% = 1 TO 8 STEP 1
  173.         AddListItem DRIVETEXT$, ""
  174.     NEXT i%
  175.  
  176.  
  177.     ''Disk cost list symbols
  178.     APPNEEDS$   = "AN"
  179.     IMPORTNEEDS$= "IN"
  180.     TEXTNEEDS$  = "TN"
  181.     TUTNEEDS$   = "TTN"
  182.     HELPNEEDS$  = "HN"
  183.     SCANNEEDS$  = "SN"
  184.     EFCTNEEDS$  = "EN"
  185.  
  186.     EXTRACOSTS$ = "ExtraCosts"
  187.  
  188.     FOR i% = 1 TO 26 STEP 1
  189.         AddListItem EXTRACOSTS$, "0"
  190.     NEXT i%
  191.  
  192.     ReplaceListItem DRIVETEXT$, 7, PICTPUB$
  193.  
  194. '*************************************************************************
  195. WELCOME:
  196.     sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", CLOSEHELP, HELPPROC$)
  197.  
  198.     IF sz$ = "CONTINUE" THEN
  199.         UIPop 1
  200.     ELSE
  201.         GOSUB ASKQUIT
  202.         GOTO WELCOME
  203.     END IF
  204.  
  205.  
  206. '*************************************************************************
  207. LICENSE:
  208.     sz$ = UIStartDlg(CUIDLL$, LAWS, "FInfoDlgProc", LICENSE, HELPPROC$)
  209.     IF sz$ = "CONTINUE" THEN
  210.         UIPop 1
  211.     ELSE
  212.         GOSUB ASKQUIT
  213.         GOTO LICENSE
  214.     END IF
  215.  
  216. '*************************************************************************
  217. IF IsWindowsShared THEN
  218.     dlg% = WINSHARE        'DB for shared windows
  219.     GOTO QUITL1
  220. END IF
  221.  
  222. '*************************************************************************
  223. JUMPTO_ID:
  224. JUMP:
  225.  
  226.     FULLEXIST% = 0
  227.     sz$ = UIStartDlg(CUIDLL$, EXPRESSOPT, "FRadioDlgProc", APPHELP , HELPPROC$)
  228.         OPTCUR$ = GetSymbolValue("ButtonChecked")
  229.  
  230.    IF sz$ = "CONTINUE"  THEN
  231.         UIPop 1
  232.             IF OPTCUR$ = "1" THEN
  233.             FULLEXIST% = 1
  234.             GOTO PREV
  235.  
  236.             ELSEIF  OPTCUR$ = "2" THEN
  237.             GOTO PREV
  238.             ENDIF
  239.         ELSEIF sz$ = "REACTIVATE"  THEN
  240.         UIPop 1
  241.             GOTO JUMP
  242.         ELSE
  243.             UIPop 1
  244.             GOSUB ASKQUIT
  245.  
  246.             GOTO JUMP
  247.  
  248.     ENDIF
  249.  
  250.  
  251. '*************************************************************************
  252. PREV:
  253.  
  254.     IF exist% THEN
  255.         sz$ = UIStartDlg(CUIDLL$, PREVER4, "FInfoDlgProc", APPHELP, HELPPROC$)
  256.         IF sz$ = "CONTINUE" THEN
  257.             UIPop 1
  258.         ELSE
  259.             UIPop 1
  260.             GOSUB ASKQUIT
  261.             GOTO PREV
  262.         ENDIF
  263.     ENDIF
  264. '*************************************************************************
  265. 'Recalculate drive needs
  266. RECALCIT:
  267. sz$ = UIStartDlg(CUIDLL$, WAIT, "FModelessDlgProc", APPHELP, HELPPROC$)
  268. RecalcPath
  269. SetDriveStatus
  270. UIPop 1
  271. '*************************************************************************
  272. INSTMENU:
  273.     IF FULLEXIST THEN
  274.     sz$ = UIStartDlg(CUIDLL$, FULLINSTM, "FCustInstDlgProc", CUSTHELP, HELPPROC$)
  275.     ELSE
  276.     sz$ = UIStartDlg(CUIDLL$, CUSTINSTCD, "FCustInstDlgProc", CUSTHELP , HELPPROC$)
  277.     ENDIF
  278.     IF sz$ = "CONTINUE" THEN
  279.         ''Install only if it will fit.
  280.         IF TooManyFiles% THEN
  281.             UIPop 1
  282.             GOSUB TOOBIG
  283.             GOTO INSTMENU
  284.  
  285.         END IF
  286.         UIPop 1
  287.         GOTO INSTALL
  288.  
  289.  
  290.     ELSEIF sz$ = "PATH" THEN
  291.         UIPop 1
  292.         GOTO GETPATH
  293.  
  294.     ELSEIF sz$ = "CHK1" THEN
  295.         RecalcOptFiles APPFILES
  296.         SetDriveStatus
  297.         GOTO INSTMENU
  298.  
  299.     ELSEIF sz$ = "BTN1" THEN
  300.     UIPop 1
  301.     sz$ = UIStartDlg(CUIDLL$, SCANHELPDB, "FInfoDlgProc", APPHELP, HELPPROC$)
  302.  
  303.         IF sz$ = "CONTINUE" THEN
  304.             UIPop 1
  305.             GOTO INSTMENU
  306.         ENDIF
  307.  
  308.     ELSEIF sz$ = "CHK2" THEN
  309.         RecalcOptFiles EFCTFILES
  310.         SetDriveStatus
  311.         GOTO INSTMENU
  312.  
  313.     ELSEIF sz$ = "CHK3" THEN
  314.         RecalcOptFiles TUTFILES
  315.         SetDriveStatus
  316.         GOTO INSTMENU
  317.  
  318.     ELSEIF sz$ = "BTN3" THEN
  319.     UIPop 1
  320.     GOTO JUMP
  321.  
  322.     ELSEIF sz$ = "CHK4" THEN
  323.         RecalcOptFiles IMPORTFILES
  324.         SetDriveStatus
  325.         GOTO INSTMENU
  326.  
  327.     ELSEIF sz$ = "CHK5" THEN
  328.         RecalcOptFiles HELPFILES
  329.         SetDriveStatus
  330.         GOTO INSTMENU
  331.  
  332.     ELSEIF sz$ = "CHK6" THEN
  333.         RecalcOptFiles TEXTFILES
  334.         SetDriveStatus
  335.         GOTO INSTMENU
  336.  
  337.     ELSEIF sz$ = "CHK7" THEN
  338.         RecalcOptFiles SCANFILES
  339.         SetDriveStatus
  340.         GOTO INSTMENU
  341.  
  342.  
  343.     ELSEIF sz$ = "REACTIVATE" THEN
  344.         UIPop 1
  345.         GOTO RECALCIT
  346.     ELSE
  347.         UIPop 1
  348.         GOSUB ASKQUIT
  349.         GOTO INSTMENU
  350.     END IF
  351.  
  352.  
  353. '*************************************************************************
  354. '*************************************************************************
  355. '*************************************************************************
  356. INSTALL:
  357.     sz$ = UIStartDlg(CUIDLL$, WAIT, "FModelessDlgProc", APPHELP, HELPPROC$)
  358.     ClearCopyList
  359.  
  360. FULLNEEDS$   = ""        'Memory optimization
  361. APPNEEDS$    = ""
  362. TEXTNEEDS$   = ""
  363. IMPORTNEEDS$ = ""
  364. TUTNEEDS$    = ""
  365. HELPNEEDS$   = ""
  366. SCANNEEDS$   = ""
  367. EFCTNEEDS$   = ""
  368. EXTRACOSTS$  = ""
  369. STATUSTEXT$  = ""
  370. DRIVETEXT$   = ""
  371.  
  372.     PICTPUBOLE$ = PICTPUB$ +"\PP50.EXE"   'Creates full path for PP5.0 OLE working directories
  373.  
  374.     CreateDir PICTPUB$, cmoNone
  375.     CreateSubDir
  376.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  377.     SrcFileDir$ = MakePath (SrcDir$, "INSTALL")
  378.     ini$ = MakePath(PICTPUB$, "NAMES.INI")
  379.  
  380.             IF PICTPUBCK$ = PICTPUB$ THEN          'Removes old files from PP4.0
  381.                 RemoveFile PICTPUBCK$+"\mgxrx101.dll", cmoNone
  382.                 RemoveFile PICTPUBCK$+"\pcdlib.dll", cmoNone
  383.                 RemoveFile PICTPUBCK$+"\jpeg_dll.dll", cmoNone
  384.                 RemoveFile PICTPUBCK$+"\PP40.exe", cmoNone
  385.                 RemoveFile PICTPUBCK$+"\PPLE.exe", cmoNone
  386.                 RemoveFile PICTPUBCK$+"\PPhlp.hlp", cmoNone
  387.                 RemoveFile PICTPUBCK$+"\pp-scan.hlp", cmoNone
  388.                 RemoveIniSection ini$, "Macro", cmoNone      'remove conflicting macros
  389.                 RemoveFile PICTPUBCK$+"\effects\reduce.dfx", cmoNone
  390.                 RemoveIniSection ini$, "Special", cmoNone    'remove conflicting effects
  391.                 SetFlgRemovePrevVer%=1
  392.                 RemoveIniKey WINDIRECT$+"WIN.INI", "Micrografx", "Picture Publisher 4.0", cmoNone
  393.             ENDIF
  394.  
  395.  
  396.     UIPop 1
  397.     szName$= "CLSID\{000440EE-0000-0000-C000-000000000046}"
  398.     sz$ = UIStartDlg(CUIDLL$, OLEOPTN1, "FInfoDlgProc", APPHELP, HELPPROC$)
  399.  
  400.     IF sz$ = "CONTINUE" THEN
  401.         UIPop 1
  402.         CreateRegKeyValue szName$, "Picture Publisher Image"
  403.         DeleteRegKey szName$+"\TreatAs"
  404.         CreateRegKeyValue szName$+"\AutoConvertTo","{BC7A9620-3913-101B-9649-020080A38E74}"
  405.         CreateRegKeyValue szName$+"\ProgID", "BitmapImage"
  406.         CreateRegKeyValue szName$+"\Ole1Class", "BitmapImage"
  407.         IF SetFlgRemovePrevVer% THEN
  408.             DeleteRegKey szName$+"\ProgID"
  409.         ENDIF
  410.     ELSE
  411.     UIPop 1
  412.     sz$ = UIStartDlg(CUIDLL$, OLEOPTN2, "FInfoDlgProc", APPHELP, HELPPROC$)
  413.  
  414.         IF sz$ = "CONTINUE"  THEN
  415.             CreateRegKeyValue szName$, "Picture Publisher Image"
  416.             DeleteRegKey szName$+"\AutoConvertTo"
  417.             CreateRegKeyValue szName$+"\TreatAs","{BC7A9620-3913-101B-9649-020080A38E74}"
  418.             CreateRegKeyValue szName$+"\ProgID", "BitmapImage"
  419.             CreateRegKeyValue szName$+"\Ole1Class", "BitmapImage"
  420.             UIPop 1
  421.  
  422.         ELSE
  423.         UIPop 1
  424.             DeleteRegKey szName$+"\AutoConvertTo"
  425.             DeleteRegKey szName$+"\TreatAs"
  426.         END IF
  427. ENDIF
  428. szName$=""
  429.  
  430.     IF GetListItem(CHECKSTATES$, APPFILES) = "ON" THEN
  431.  
  432.             OLE_Process
  433.             AddSectionFilestoCopyList "Maindbf", SrcFileDir$, THUMB$
  434.  
  435.             AddSectionFilesToCopyList "Appfiles", SrcFileDir$, PICTPUB$
  436.             AddSectionFilesToCopyList "Mainini", SrcFileDir$, PICTPUB$
  437.  
  438.             AddSectionFilestoCopyList "Macros", SrcFileDir$, MACRO$
  439.  
  440.             AddSectionFilestoCopyList "Printstyles", SrcFileDir$, PRINTSTY$
  441.             AddSectionFilestoCopyList "Palettes", SrcFileDir$, PALETTE$
  442.  
  443.             AddSectionFilestoCopyList "Defaulttextures", SrcFileDir$, TEXTURE$
  444.             AddSectionFilestoCopyList "Defaulttexturebrush", SrcFileDir$, BRUSH$
  445.             AddSectionFilestoCopyList "Brushes", SrcFileDir$, BRUSH$
  446.             AddSectionFilesToCopyList "Musttutorial", SrcFileDir$, TUTORIAL$
  447.             AddSectionFilestoCopyList "Thumbs", SrcFileDir$, THUMB$
  448.             SetAppfilesOn%=1
  449.             AddSectionFilestoCopyList "Clipbits", SrcFileDir$, CLIPBIT$
  450.             UIPop 1
  451.             sz$ = UIStartDlg(CUIDLL$, WAIT, "FModelessDlgProc", APPHELP, HELPPROC$)
  452.  
  453.             CreateIniKeyValue ini$, "Clipboard", "Logo", "Logo.pp5", cmoNone
  454.             CreateOptStyleNamesEntries(ini$)
  455.             CreateOptPaletteNamesEntries(ini$)
  456.             CreatePrintStyNamesEntries(ini$)
  457.             CreateDTextrNamesIni(ini$)
  458.             CreatePPINIKeyEntries (PICTPUB$+"\pp.ini")
  459.  
  460.     ENDIF
  461.  
  462.     IF GetListItem(CHECKSTATES$, IMPORTFILES) = "ON"  THEN
  463.             AddSectionFilestoCopyList "Filterappfiles", SrcFileDir$, PICTPUB$
  464.             AddSectionFilestoCopyList "Filtersini", SrcFileDir$, FILTER$
  465.             AddSectionFilesToCopyList "Filters", SrcFileDir$, FILTER$
  466.     ENDIF
  467.  
  468.     IF GetListItem(CHECKSTATES$, TUTFILES) = "ON"  THEN
  469.             AddSectionFilestoCopyList "Tutorial", SrcFileDir$, TUTORIAL$
  470.             AddSectionFilestoCopyList "Tutordbf", SrcFileDir$, THUMB$
  471.             TutThumbon%=1
  472.     ENDIF
  473.  
  474.     IF GetListItem(CHECKSTATES$, HELPFILES) = "ON"  THEN
  475.             AddSectionFilestoCopyList "Helpfile1", SrcFileDir$, PICTPUB$
  476.             AddSectionFilestoCopyList "Helpfile2", SrcFileDir$, PICTPUB$
  477.             SCANHELP%=1
  478.     ENDIF
  479.  
  480.     IF GetListItem(CHECKSTATES$, EFCTFILES) = "ON" THEN
  481.            AddSectionFilestoCopyList "Effects", SrcFileDir$, EFFECT$
  482.            RemoveIniSection ini$, "Special", cmoNone
  483.            CreateOptFXNamesEntries(ini$)
  484.     END IF
  485.  
  486.     IF GetListItem(CHECKSTATES$, TEXTFILES) = "ON" THEN
  487.  
  488.         AddSectionFilestoCopyList "Textrcd", SrcFileDir$, PICTPUB$+"\textures"
  489.         AddSectionFilestoCopyList "Brushcd", SrcFileDir$, PICTPUB$+"\brushes"
  490.         CreateOptTextureNamesEntries (ini$)
  491.  
  492.     END IF
  493.  
  494.     IF GetListItem(CHECKSTATES$, SCANFILES) = "ON" THEN
  495.         AddSectionFilestoCopyList "Devices", SrcFileDir$, PICTPUB$+"\devices"
  496.         CreateOptScanNamesEntries(ini$)
  497.     END IF
  498.  
  499.  
  500.           RemoveIniKey       WINDIRECT$+"MGX.INI", "Micrografx", "PP.INI" , cmoNone
  501.           CreateIniKeyValue  WINDIRECT$+"MGX.INI", "Micrografx", "Picture Publisher 5.0", PICTPUB$, cmoOverwrite
  502.           CreateIniKeyValue  WINDIRECT$+"MGX.INI", "Picture Publisher 5.0", "Warning", "0", cmoOverwrite
  503.  
  504.           szInf$ = ""
  505.  
  506.           UIPop 1
  507.  
  508.           getbeep%=SetBeepingMode(1)
  509.  
  510.           SetRestartDir GetWindowsDir()
  511.  
  512.           CopyFilesInCopyList
  513.  
  514.  
  515. ini$ = MakePath(PICTPUB$, "PP.INI")
  516. szName$="Picture Publisher"
  517.     CreateIniKeyValue ini$, szName$, "Device", DEVICE$, cmoNone
  518.     CreateIniKeyValue ini$, szName$, "Texture", TEXTURE$, cmoNone
  519.     CreateIniKeyValue ini$, szName$, "Palette", PALETTE$, cmoNone
  520.     CreateIniKeyValue ini$, szName$, "Effects", EFFECT$, cmoNone
  521.     CreateIniKeyValue ini$, szName$, "PrnStyle", PRINTSTY$, cmoNone
  522.     CreateIniKeyValue ini$, szName$, "Brush", BRUSH$, cmoNone
  523.     CreateIniKeyValue ini$, szName$, "ClipBit", CLIPBIT$, cmoNone
  524.     CreateIniKeyValue ini$, szName$, "Shapepath", CLIPBIT$, cmoNone
  525.     CreateIniKeyValue ini$, szName$, "Macros", MACRO$, cmoNone
  526.     CreateIniKeyValue ini$, szName$, "ThumbnailDir", THUMB$, cmoNone
  527.     CreateIniKeyValue ini$, szName$, "DBFInfoDir", THUMB$, cmoNone
  528.     CreateIniKeyValue ini$, szName$, "AlbumFileDir", ALBUM$, cmoNone
  529.     CreateIniKeyValue ini$, szName$, "Filters", FILTER$, cmoNone
  530.     CreateIniKeyValue ini$, szName$, "Pouchpath", PICTPUB$, cmoNone
  531.     CreateIniKeyValue ini$, szName$, "RamDisk", PICTPUB$, cmoNone
  532.  
  533.   IF TutThumbon% THEN
  534.  
  535.     szDBF$ = MakePath (THUMB$, "__HTUTR.DBF")
  536.     IF HandleDBF (szDBF$, TUTORIAL$, THUMB$) THEN
  537.     END IF
  538.   ENDIF
  539.  
  540.   IF SetAppfilesOn% THEN
  541.  
  542.     szDBF$ = MakePath (THUMB$, "__HOME.DBF")
  543.     IF HandleDBF (szDBF$, PICTPUB$, THUMB$) THEN
  544.     END IF
  545.     szDBF$ = MakePath (THUMB$, "__CLIPBT.DBF")
  546.     IF HandleDBF (szDBF$, CLIPBIT$, THUMB$) THEN
  547.     END IF
  548.  
  549.  
  550.   ENDIF
  551.  
  552.  
  553. QUIT:
  554.     ON ERROR GOTO ERRQUIT
  555.  
  556.     IF ERR = 0 THEN
  557.         dlg% = EXITSUCCESS
  558.     ELSE
  559.     UIPop 1
  560.         dlg% = EXITQUIT
  561.     END IF
  562.  
  563.     IF dlg% = EXITSUCCESS THEN
  564.  
  565.           RUN "Regedit /S OLE2.REG"
  566.           n% = UpdateRegistry (PICTPUBOLE$)
  567.  
  568. around:
  569.           sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  570.             IF sz$ = "CONTINUE" THEN
  571.                 UIPop 1
  572.             ELSE
  573.                 GOTO around
  574.             ENDIF
  575.  
  576.           ini$ = MakePath(PICTPUB$, "PP.INI")
  577.           CreateProgmanGroup "Micrografx", "", cmoNone
  578.           ShowProgmanGroup  "Micrografx", 1, cmoNone
  579.           IF SetAppfilesOn% THEN
  580.             CreateProgmanItem "Micrografx ", "Picture Publisher 5.0 30 Day Trial", ""+MakePath(PICTPUB$,"PP50.EXE"), "", cmoOverwrite
  581.           ENDIF
  582.           IF SCANHELP% THEN
  583.             CreateProgmanItem "Micrografx", "Scanner Installation Help", "winhelp.exe "+MakePath(PICTPUB$,"PP_SCAN.HLP"), "", cmoOverwrite
  584.           ENDIF
  585.  
  586.      sz$ = UIStartDlg(CUIDLL$, CMS, "FInfoDlgProc", CMS, HELPPROC$)
  587.     IF sz$ = "CONTINUE" THEN
  588.         UIPop 1
  589.     END IF
  590.      sz$ = UIStartDlg(CUIDLL$, SHAREWARN, "FInfoDlgProc", APPHELP, HELPPROC$)
  591.     IF sz$ = "CONTINUE" THEN
  592.         UIPop 1
  593.     END IF
  594.  
  595.  
  596. ENDIF
  597.  
  598.  
  599. GOTO ENDIT
  600.  
  601. QUITL1:
  602.     sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  603.  
  604.     IF sz$ = "REACTIVATE" THEN
  605.         GOTO QUITL1
  606.     END IF
  607.     UIPop 1
  608.  
  609. ENDIT:
  610.  
  611.     IF RestartListEmpty()=0 THEN
  612.         Restartf% = ExitExecRestart()
  613.     ENDIF
  614.  
  615. END
  616.  
  617. ERRQUIT:
  618.     OUT$ = STR$(ERR)
  619.     IF ERR = 14 THEN
  620.         ErrSTR$= "ERROR #" + OUT$ + ". File copying failure. Consult HELP on the opening screen."
  621.         i% = DoMsgBox(ErrSTR$, "REINSTALL", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  622.         UIPop 1
  623.         END
  624.     ENDIF
  625.  
  626.     ErrSTR$= "ERROR #" + OUT$ + ". Report to Tech Support 214-497-6495"
  627.     i% = DoMsgBox(ErrSTR$, "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  628.  
  629.     END
  630.  
  631. '*************************************************************************
  632. SUB CreateSubDir STATIC
  633. szName$="Picture Publisher"
  634.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  635.  
  636.     SrcFileDir$ = MakePath (SrcDir$, "INSTALL")
  637.  
  638.     ini$ = MakePath(PICTPUB$, "PP.INI")
  639.  
  640.     DEVICE$ = GetIniKeyString (ini$, szName$, "Device")
  641.     IF DEVICE$ = "" THEN
  642.         DEVICE$ = MakePath (PICTPUB$, "DEVICES")
  643.         CreateDir DEVICE$, cmoNone
  644.     END IF
  645.  
  646.     ALBUM$ = GetIniKeyString (ini$, szName$, "AlbumFileDir")
  647.     IF ALBUM$ = "" THEN
  648.         ALBUM$ = MakePath (PICTPUB$, "ALBUMS")
  649.         CreateDir ALBUM$, cmoNone
  650.     END IF
  651.  
  652.     BRUSH$ = GetIniKeyString (ini$, szName$, "Brush")
  653.     IF BRUSH$ = "" THEN
  654.         BRUSH$ = MakePath (PICTPUB$, "BRUSHES")
  655.         CreateDir BRUSH$, cmoNone
  656.     END IF
  657.  
  658.     CLIPBIT$ = GetIniKeyString (ini$, szName$, "ClipBits")
  659.     IF CLIPBIT$ = "" THEN
  660.         CLIPBIT$ = MakePath (PICTPUB$, "CLIPBITS")
  661.         CreateDir CLIPBIT$, cmoNone
  662.     END IF
  663.  
  664.     THUMB$ = GetIniKeyString (ini$, szName$, "DBFInfoDir")
  665.     IF THUMB$ = "" THEN
  666.         THUMB$ = MakePath (PICTPUB$, "THUMBS")
  667.         CreateDir THUMB$, cmoNone
  668.     END IF
  669.  
  670.     EFFECT$ = GetIniKeyString (ini$, szName$, "Effects")
  671.     IF EFFECT$ = "" THEN
  672.         EFFECT$ = MakePath (PICTPUB$, "EFFECTS")
  673.         CreateDir EFFECT$, cmoNone
  674.     END IF
  675.  
  676.     MACRO$ = GetIniKeyString (ini$, szName$, "Macros")
  677.     IF MACRO$ = "" THEN
  678.         MACRO$ = MakePath (PICTPUB$, "MACROS")
  679.         CreateDir MACRO$, cmoNone
  680.     END IF
  681.  
  682.     PALETTE$ = GetIniKeyString (ini$, szName$, "Palette")
  683.     IF PALETTE$ = "" THEN
  684.         PALETTE$ = MakePath (PICTPUB$, "PALETTES")
  685.         CreateDir PALETTE$, cmoNone
  686.     END IF
  687.  
  688.     PRINTSTY$ = GetIniKeyString (ini$, szName$, "PrnStyle")
  689.     IF PRINTSTY$ = "" THEN
  690.         PRINTSTY$ = MakePath (PICTPUB$, "PRINTSTY")
  691.         CreateDir PRINTSTY$, cmoNone
  692.     END IF
  693.  
  694.     TEXTURE$ = GetIniKeyString (ini$, szName$, "Texture")
  695.     IF TEXTURE$ = "" THEN
  696.         TEXTURE$ = MakePath (PICTPUB$, "TEXTURES")
  697.         CreateDir TEXTURE$, cmoNone
  698.     END IF
  699.  
  700.     DBF$ = GetIniKeyString (ini$, szName$, "DBFInfoDir")
  701.     IF DBF$ = "" THEN
  702.         DBF$ = MakePath (PICTPUB$, "THUMBS")
  703.     END IF
  704.  
  705.     THUMB$ = GetIniKeyString (ini$, szName$, "ThumbnailDir")
  706.     IF THUMB$ = "" THEN
  707.         THUMB$ = MakePath (PICTPUB$, "THUMBS")
  708.         CreateDir THUMB$, cmoNone
  709.     END IF
  710.  
  711.     FILTER$ = GetIniKeyString (ini$, szName$, "Filters")
  712.     IF FILTER$ = "" THEN
  713.         FILTER$ = MakePath (PICTPUB$, "FILTERS")
  714.         CreateDir FILTER$, cmoNone
  715.     END IF
  716.  
  717.     TUTORIAL$ = GetIniKeyString (ini$, szName$, "Tutorial")
  718.     IF TUTORIAL = "" THEN
  719.         TUTORIAL = MakePath (PICTPUB$, "TUTORIAL")
  720.         CreateDir TUTORIAL$, cmoNone
  721.     END IF
  722.  
  723. END SUB
  724.  
  725.  
  726. '*************************************************************************
  727. GETPATH:
  728.     SetSymbolValue "EditTextIn", PICTPUB$
  729.     SetSymbolValue "EditFocus", "END"
  730. GETPATHL1:
  731.     sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP, HELPPROC$)
  732.  
  733.     IF sz$ = "CONTINUE" THEN
  734.         oldPICTPUB$ = PICTPUB$
  735.         PICTPUB$ = GetSymbolValue("EditTextOut")
  736.  
  737.         ''Validate new path.
  738.         IF IsDirWritable(PICTPUB$) = 0 THEN
  739.             GOSUB BADPATH
  740.             GOTO GETPATHL1
  741.         END IF
  742.         UIPop 1
  743.  
  744.  
  745.         ''Truncate display if too long.
  746.         IF LEN(PICTPUB$) > 40 THEN
  747.             ReplaceListItem DRIVETEXT$, 7, MID$(PICTPUB$, 1, 40)+"..."
  748.         ELSE
  749.             ReplaceListItem DRIVETEXT$, 7, PICTPUB$
  750.         END IF
  751.  
  752.         ''Recalc if path changed.
  753.         IF (oldPICTPUB$ <> PICTPUB$) AND (oldPICTPUB$ <> PICTPUB$+"\") AND (oldPICTPUB$+"\" <> PICTPUB$) THEN
  754.             sz$ = UIStartDlg(CUIDLL$, WAIT, "FModelessDlgProc", APPHELP, HELPPROC$)
  755.             RecalcPath
  756.             SetDriveStatus
  757.             UIPop 1
  758.         END IF
  759.  
  760.         oldPICTPUB$ = ""
  761.  
  762.         GOTO INSTMENU
  763.     ELSEIF sz$ = "REACTIVATE" THEN
  764.         RecalcPath
  765.         SetDriveStatus
  766.         GOTO GETPATHL1
  767.     ELSEIF sz$ = "EXIT" THEN
  768.         GOSUB ASKQUIT
  769.         GOTO GETPATHL1
  770.     ELSE
  771.         UIPop 1
  772.         GOTO INSTMENU
  773.     END IF
  774.  
  775.  
  776. '*************************************************************************
  777. TOOBIG:
  778.     sz$ = UIStartDlg(CUIDLL$, TOOBIG, "FInfo0DlgProc", 0, "")
  779.     IF sz$ = "REACTIVATE" THEN
  780.         RecalcPath
  781.         SetDriveStatus
  782.         GOTO TOOBIG
  783.     END IF
  784.     UIPop 1
  785.     RETURN
  786.  
  787.  
  788. '*************************************************************************
  789. BADPATH:
  790.     sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
  791.     IF sz$ = "REACTIVATE" THEN
  792.         RecalcPath
  793.         SetDriveStatus
  794.         GOTO BADPATH
  795.     END IF
  796.     UIPop 1
  797.     RETURN
  798.  
  799.  
  800. '*************************************************************************
  801. ASKQUIT:
  802.     UIPop 1
  803.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  804.  
  805.     IF sz$ = "EXIT" THEN
  806.         UIPopAll
  807.         ERROR STFQUIT
  808.     ELSEIF sz$ = "REACTIVATE" THEN
  809.         GOTO ASKQUIT
  810.     ELSE
  811.         UIPop 1
  812.     END IF
  813.     RETURN
  814.  
  815. '*************************************************************************
  816. SUB RecalcOptFiles (ftype%) STATIC
  817.     CursorSave% = ShowWaitCursor()
  818.     ClearCopyList
  819.     AddOptFilesToCopyList ftype%
  820.  
  821.     fExtra% = 0
  822.     IF ftype% = APPFILES THEN
  823.         ListSym$ = APPNEEDS$
  824.         IF GetListItem(CHECKSTATES$, APPFILES) = "ON" THEN
  825.             ''Add extra cost to Windows drive for ini/progman, etc.
  826.             ndrive% = ASC(ucase$(WINDRIVE$)) - ASC("A") + 1
  827.             ReplaceListItem EXTRACOSTS$, ndrive%, "10240"
  828.             fExtra% = 1
  829.         END IF
  830.  
  831.     ELSEIF ftype% = TUTFILES THEN
  832.         ListSym$ = TUTNEEDS$
  833.  
  834.     ELSEIF ftype% = IMPORTFILES THEN
  835.         ListSym$ = IMPORTNEEDS$
  836.  
  837.     ELSEIF ftype% = HELPFILES THEN
  838.         ListSym$ = HELPNEEDS$
  839.  
  840.     ELSEIF ftype% = EFCTFILES THEN
  841.         ListSym$ = EFCTNEEDS$
  842.  
  843.     ELSEIF ftype% = SCANFILES THEN
  844.         ListSym$ = SCANNEEDS$
  845.  
  846.     ELSEIF ftype% = TEXTFILES THEN
  847.         ListSym$ = TEXTNEEDS$
  848.     END IF
  849.  
  850.  
  851.     StillNeed& = GetCopyListCost(EXTRACOSTS$, ListSym$, "needmore")
  852.     cost& = 0
  853.     FOR i% = 1 TO 26 STEP 1
  854.         cost&  = cost& + VAL(GetListItem(ListSym$, i%))
  855.         IF VAL(GetListItem("needmore", i%)) > 0 THEN
  856.  
  857.         ELSE
  858.  
  859.         END IF
  860.     NEXT i%
  861.     ReplaceListItem STATUSTEXT$, ftype%, STR$(cost& / 1024) + " K"
  862.  
  863.     IF fExtra% THEN
  864.         ReplaceListItem EXTRACOSTS$, ndrive%, "0"
  865.     END IF
  866.     RestoreCursor CursorSave%
  867.     ListSym$ = ""
  868.  
  869. END SUB
  870.  
  871. '*************************************************************************
  872. SUB RecalcPath STATIC
  873.  
  874.     CursorSave% = ShowWaitCursor()
  875.  
  876.     RecalcOptFiles (APPFILES)
  877.     RecalcOptFiles (IMPORTFILES)
  878.     RecalcOptFiles (HELPFILES)
  879.     RecalcOptFiles (EFCTFILES)
  880.     RecalcOptFiles (TUTFILES)
  881.     RecalcOptFiles (TEXTFILES)
  882.     RecalcOptFiles (SCANFILES)
  883.  
  884.     RestoreCursor CursorSave%
  885.  
  886. END SUB
  887.  
  888.  
  889. '*************************************************************************
  890. SUB SetDriveStatus STATIC
  891.  
  892.     TooManyFiles% = 0
  893.     drive$ = MID$(PICTPUB$, 1, 1)
  894.     ndrive% = ASC(ucase$(drive$)) - ASC("A") + 1
  895.     cost1& = VAL(GetListItem(APPNEEDS$, ndrive%)) + VAL(GetListItem(IMPORTNEEDS$, ndrive%))  + VAL(GetListItem(TEXTNEEDS$, ndrive%))
  896.     cost2& = VAL(GetListItem(TUTNEEDS$, ndrive%)) + VAL(GetListItem(EFCTNEEDS$, ndrive%)) + VAL(GetListItem(HELPNEEDS$, ndrive%)) + VAL(GetListItem(SCANNEEDS$, ndrive%))
  897.     cost& = cost1& + cost2&
  898.     free& = GetFreeSpaceForDrive(drive$)
  899.     ReplaceListItem DRIVETEXT$, 1, ucase$(drive$) + ":"
  900.     ReplaceListItem DRIVETEXT$, 2, STR$(cost& / 1024) + " K"
  901.     ReplaceListItem DRIVETEXT$, 3, STR$(free& / 1024) + " K"
  902.     IF cost& > free& THEN
  903.         TooManyFiles% = 1
  904.     END IF
  905.  
  906.     IF drive$ = WINDRIVE$ THEN
  907.         ReplaceListItem DRIVETEXT$, 4, ""
  908.         ReplaceListItem DRIVETEXT$, 5, ""
  909.         ReplaceListItem DRIVETEXT$, 6, ""
  910.     ELSE
  911.         ndrive% = ASC(ucase$(WINDRIVE$)) - ASC("A") + 1
  912.     cost1& = VAL(GetListItem(APPNEEDS$, ndrive%)) + VAL(GetListItem(IMPORTNEEDS$, ndrive%)) + VAL(GetListItem(TEXTNEEDS$, ndrive%)) + VAL(GetListItem(SCANNEEDS$, ndrive%))
  913.     cost2& = VAL(GetListItem(TUTNEEDS$, ndrive%)) + VAL(GetListItem(EFCTNEEDS$, ndrive%)) + VAL(GetListItem(HELPNEEDS$, ndrive%))
  914.         cost& = cost1& + cost2&
  915.         IF cost& = 0 THEN
  916.             ReplaceListItem DRIVETEXT$, 4, ""
  917.             ReplaceListItem DRIVETEXT$, 5, ""
  918.             ReplaceListItem DRIVETEXT$, 6, ""
  919.         ELSE
  920.             free& = GetFreeSpaceForDrive(WINDRIVE$)
  921.             ReplaceListItem DRIVETEXT$, 4, WINDRIVE$ + ":"
  922.             ReplaceListItem DRIVETEXT$, 5, STR$(cost& / 1024) + " K"
  923.             ReplaceListItem DRIVETEXT$, 6, STR$(free& / 1024) + " K"
  924.         END IF
  925.         IF cost& > free& THEN
  926.             TooManyFiles% = 1
  927.         END IF
  928.     END IF
  929. END SUB
  930.  
  931.  
  932. '*************************************************************************
  933. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  934.     IF szDir$ = "" THEN
  935.         MakePath = szFile$
  936.     ELSEIF szFile$ = "" THEN
  937.         MakePath = szDir$
  938.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  939.         MakePath = szDir$ + szFile$
  940.     ELSE
  941.         MakePath = szDir$ + "\" + szFile$
  942.     END IF
  943. END FUNCTION
  944.  
  945. '*************************************************************************
  946.  
  947. '*************************************************************************
  948. SUB AddOptFilesToCopyList (ftype%) STATIC
  949.  
  950.  IF GetListItem(CHECKSTATES$, ftype%) = "ON" THEN
  951.         SrcDir$ = GetSymbolValue("STF_SRCDIR")
  952.         SrcFileDir$ = MakePath (SrcDir$, "INSTALL")
  953.  
  954.  
  955.         IF ftype% = APPFILES THEN
  956.             OLE_Process
  957.             AddSectionFilestoCopyList "Maindbf", SrcFileDir$, PICTPUB$
  958.             AddSectionFilesToCopyList "Appfiles", SrcFileDir$, PICTPUB$
  959.             AddSectionFilesToCopyList "Mainini", SrcFileDir$, PICTPUB$
  960.  
  961.             AddSectionFilestoCopyList "Macros", SrcFileDir$, PICTPUB$
  962.  
  963.             AddSectionFilestoCopyList "Printstyles", SrcFileDir$, PICTPUB$
  964.             AddSectionFilestoCopyList "Palettes", SrcFileDir$, PICTPUB$
  965.  
  966.             AddSectionFilestoCopyList "Defaulttextures", SrcFileDir$, PICTPUB$
  967.             AddSectionFilestoCopyList "Defaulttexturebrush", SrcFileDir$, PICTPUB$
  968.             AddSectionFilestoCopyList "Brushes", SrcFileDir$, PICTPUB$
  969.  
  970.             AddSectionFilesToCopyList "Musttutorial", SrcFileDir$, PICTPUB$
  971.  
  972.             AddSectionFilestoCopyList "Thumbs", SrcFileDir$, PICTPUB$
  973.             AddSectionFilestoCopyList "Clipbits", SrcFileDir$, PICTPUB$
  974.  
  975.  
  976.         ENDIF
  977.  
  978.         IF ftype% = IMPORTFILES THEN
  979.             AddSectionFilestoCopyList "Filterappfiles", SrcFileDir$, PICTPUB$
  980.             AddSectionFilestoCopyList "Filtersini", SrcFileDir$, PICTPUB$
  981.             AddSectionFilesToCopyList "Filters", SrcFileDir$, PICTPUB$
  982.         ENDIF
  983.  
  984.         IF ftype% = TUTFILES THEN
  985.             AddSectionFilesToCopyList "Tutorial", SrcFileDir$, PICTPUB$
  986.             AddSectionFilestoCopyList "Tutordbf", SrcFileDir$, PICTPUB$
  987.         ENDIF
  988.  
  989.         IF ftype% = HELPFILES THEN
  990.             AddSectionFilestoCopyList "Helpfile1", SrcFileDir$, PICTPUB$
  991.             AddSectionFilestoCopyList "Helpfile2", SrcFileDir$, PICTPUB$
  992.         ENDIF
  993.  
  994.         IF ftype% = EFCTFILES THEN
  995.             AddSectionFilestoCopyList "Effects", SrcFileDir$, PICTPUB$
  996.         ENDIF
  997.  
  998.         IF ftype% = TEXTFILES THEN
  999.             AddSectionFilestoCopyList "Textrcd", SrcFileDir$, PICTPUB$
  1000.             AddSectionFilestoCopyList "Brushcd", SrcFileDir$, PICTPUB$
  1001.         END IF
  1002.  
  1003.         IF ftype% = SCANFILES THEN
  1004.             AddSectionFilestoCopyList "Devices", SrcFileDir$, PICTPUB$
  1005.         END IF
  1006.  
  1007.         SrcDir$ = ""
  1008.  
  1009. ENDIF
  1010. END SUB
  1011.  
  1012. SUB OLE_Process STATIC
  1013. SrcDir$ = GetSymbolValue("STF_SRCDIR")
  1014. SrcFileDir$ = MakePath (SrcDir$, "INSTALL")
  1015. SysDir$ = WINDIRECT$+"SYSTEM"
  1016.  
  1017.  
  1018.         FOR i% = 1 TO GetListLength(VERTEXT$) STEP 1
  1019.  
  1020.             IF DoesFileExist(SYSTEMDIRECT$+GetListItem(VERTEXT$, i%), femExist) THEN
  1021.                 VStr$=GetVersionOfFile(SYSTEMDIRECT$+GetListItem(VERTEXT$, i%))
  1022.                 PPStr$=GetSectionKeyVersion("Ole",GetListItem(VERTEXT$, i%))
  1023.                 CHKIT$= GetListItem(VERTEXT$, i%)
  1024.                 IF Vstr$=PPStr$ Then
  1025.                 GOTO JUMPA
  1026.                 ENDIF
  1027.                 FOR j% = 1 to 4 STEP 1
  1028.                     IF GetVersionNthField(PPStr$, j%) > GetVersionNthField(VStr$, j%) THEN
  1029.                         AddSectionKeyFileToCopyList "Ole", GetListItem(VERTEXT$, i%), SrcFileDir$, SysDir$
  1030.                         EXIT FOR
  1031.                     ENDIF
  1032.                 NEXT j%
  1033.             ELSE
  1034.                 CHKIT$= GetListItem(VERTEXT$, i%)
  1035.                 AddSectionKeyFileToCopyList "Ole", GetListItem(VERTEXT$, i%), SrcFileDir$, SysDir$
  1036.             ENDIF
  1037.         JUMPA:
  1038.         NEXT i%
  1039. END SUB
  1040.  
  1041.